package com.iflytek.cosmo.ocr.common.constant;

import java.util.List;

import com.google.common.collect.Lists;
import org.apache.commons.collections4.ListUtils;

/**
 * 通用常量
 * 
 * @author xqxia3
 * @date 2018年5月11日
 */
public class CommonConstant {
    /**
     * 文件夹类型常量 默认文件夹
     */
    public static final  Short DIR_TYPE_DEFAULT = 0;
    
    /**
     * 文件夹类型常量示例文件夹
     */
    public static final  Short DIR_TYPE_EXAMPLE = 1;
    
    /**
     * 文件夹类型常量 自定义文件夹
     */
    public static final  Short DIR_TYPE_COMMON = 2;
    
    
    /**
     * 文件夹名称常量  默认文件夹
     */
    public static final  String DIR_TYPE_DEFAULT_NAME = "我的文件夹";
    
    /**
     * 文件夹名名称常量 示例文件夹
     */
    public static final  String DIR_TYPE_EXAMPLE_NAME = "示例文件夹";

	/**
	 * 成功编码
	 */
	public static final int SUCCESS_CODE = 1;
	/**
	 * 失败编码
	 */
	public static final int FAIL_CODE = 0;
	
	/**
	 * 需要pdf密码响应码
	 */
	public static final int REQUIRE_PDFPASS_CODE = 900;

	/**
	 * 识别状态-识别中
	 */
	public static final String RECG_DOING = "0";
	
	/**
	 * 识别状态-识别成功
	 */
	public static final String RECG_SUCCESS = "1";
	
	/**
	 * 识别状态-识别失败（引擎出错）
	 */
	public static final String RECG_FAIL_ENGINE = "2";
	
	/**
	 * 识别状态-识别失败（格式解析出错，doc、txt文件）
	 */
	public static final String RECG_FAIL_FORMAT = "3";

	/**
	 * 格式化的最小文件大小 1Mb
	 */
	public static final int FORMAT_MIN_SIZE = 5 * 1048576;

    /** 允许上传的图片类文件格式 */
    public static final List<String> VALID_UPLOAD_PIC_SUFFIX = Lists.newArrayList("jpg", "jpeg", "png", "bmp", "tif", "tiff");

	/** 允许上传的文档类文件格式 */
    public static final List<String> VALID_UPLOAD_DOC_SUFFIX = Lists.newArrayList("pdf");

	/** 允许上传的文件格式 */
    public static final List<String> VALID_UPLOAD_FILE_SUFFIX = ListUtils.union(VALID_UPLOAD_PIC_SUFFIX, VALID_UPLOAD_DOC_SUFFIX);

    /** 上传图片最大 20M */
    public static final int MAX_UPLOAD_PIC_SIZE = 20 * 1024 * 1024;

	/** 上传PDF最大 200M */
    public static final int MAX_UPLOAD_PDF_SIZE = 200 * 1024 * 1024;


    /**
     * 注册成功
     */
    public static final String REGISTER_SUCCESS = "注册成功";
    /**
     * 注册失败
     */
    public static final String REGISTER_FAIL = "用户名已存在";
    /**
     * 注册错误
     */
    public static final String REGISTER_ERROR = "注册失败，请联系管理员";
    /**
     * 用户名或密码错误，请重新输入
     */
    public static final String LOGIN_ERROR_MSG = "用户名或密码错误，请重新输入";
    /**
     * 查询用户信息出差
     */
    public static final String QUERY_USER_ERROR_MSG = "查询用户信息出错";

    /**
     * 退出成功
     */
    public static final String EXIT_IFLYBAR_SUCCESS = "退出成功";
    /**
     * 登录无效密码返回错误码
     */
    public static final String INVALIDPASSWORDEXCEPTION = "INVALIDPASSWORDEXCEPTION";

    /**
     * 登录用户未注册返回错误码
     */
    public static final String ACCOUNTNOTFOUNDEXCEPTION = "ACCOUNTNOTFOUNDEXCEPTION";

    /**
     * 登录用户禁用返回错误码
     */
    public static final String DISABLEDACCOUNTEXCEPTION = "DISABLEDACCOUNTEXCEPTION";

    /**
     * 密码错误
     */
    public static final String INVALID_PASSWORD_EXCEPTION = "密码错误";

    /**
     * 用户未注册
     */
    public static final String ACCOUNT_NOT_FOUND_EXCEPTION = "用户未注册";

    /**
     * 用户被禁用
     */
    public static final String DISABLED_ACCOUNT_EXCEPTION = "用户被禁用";
    //v2.2需求高级功能新增
    
    /**
	 * 图像增强
	 */
	public static final String  IFNPP_OPERATION_ENHANCE="enhance";
	/**
	 * 图像二值化
	 */
	public static final String  IFNPP_OPERATION_BINARIZE="binarize";
	/**
	 * 图像透视变换
	 */
	public static final String  IFNPP_OPERATION_PERSPECT="perspect";
	/**
	 * 图像边界检测（黑边检测）
	 */
	public static final String  IFNPP_OPERATION_DETECT_BORDER="detect_border";
	/**
	 * 图像倾斜检测
	 */
	public static final String  IFNPP_OPERATION_DETECT_SKEW="detect_skew";
	/**
	 * 图像外部块检测（分栏图像检测）
	 */
	public static final String  IFNPP_OPERATION_DETECT_OUTSIDE="detect_outside";
	/**
     * 预处理引擎支持的图片高级功能操作
     */
    public static final String[] IFNPP_OPERATION = {"enhance", "binarize", "perspect", "detect_border", "detect_skew","detect_outside"};
    /**
     * 文件导出状态（已完成）
     */
    public static final String EXPORT_STATUS_FINISHED = "finished";
    /**
     * 文件导出状态（导出中）
     */
    public static final String EXPORT_STATUS_PROCESSING = "processing";

}
